/**
 * UploadService 提供文件上传到服务器的相关功能。
 * 它依赖于 ConfigService 来获取应用程序的配置，如主机和端口。
 *
 * @author [Your Name]
 */

import { Injectable } from '@nestjs/common';
import { ConfigService } from '@nestjs/config'; // 用于访问应用程序配置的服务

@Injectable()
export class FileService {
  /**
   * 构造函数，注入 ConfigService 以便在服务中使用。
   * @param configService 提供应用程序配置的服务
   */
  constructor(private configService: ConfigService) {}

  /**
   * 处理文件上传到服务器的操作。
   * @param file 文件对象，通常从客户端上传请求中获取
   * @returns 返回包含完整URL的文件信息，客户端可以使用此URL访问文件
   */
  uploadFileToServer(file: any): any {
    // 从配置中获取主机和端口
    const host = this.configService.get<string>('MAIN_APP_HOST');
    const port = this.configService.get<number>('MAIN_APP_PORT');

    // 修改文件路径为包含主机和端口的完整URL
    file.path =
      'http://' + host + ':' + port + '/' + file.path.replace('\\', '/');

    // 返回上传文件的信息，包括完整的URL，方便客户端访问文件
    return file;
  }
}
